This program is supposed to visualize the spectrum of music with bars representing volumes of different frequencies and some squares representing volumes of bass and left and right channels. The program uses OpenGL 3.1 for graphics and FMOD for playing music and analyzing the spectrum. As FMOD does the actual analysis, this program does no FFT or anything else regarding spectrum analysis instead solely focusing on visualizing the data. There is still one important thing to notice: FMOD gives the spectrum using linear scale whereas sound spectrum is better visualized using logarithmic scale, so this program still needs to do that conversion.

You can also play other songs than the one song that comes with this program. This can be done by giving the file name/path as the first command line parameter. On Windows this can also be done by dragging a music file, that is in this same folder, on the executable file of this program.

The song that comes with this program is Horizon by Geoplex. You can get the original version from http://www.newgrounds.com/audio/listen/520387



Running the program:
The program comes with Windows and Linux binaries that should both run out of the box. Note that you must have your graphic card drivers installed and support for OpenGL 3.1.
The Windows binary is statically linked to GLFW and dynamically linked to the fmodex.dll and glew32.dll provided.
The Linux binary is statically linked to GLFW and GLEW and dynamically linked to the libfmodex64-4.44.32.so provided.
Note that the Linux binary is not compiled with the provided Makefile that instead uses only dynamic linking. If the Linux binary doesn't work try building your own.
Also note that the Linux binary is 64 bit. If you need to compile a 32 bit version you need to download the 32 bit version of FMOD as the provided libfmodex64-4.44.32.so is also 64 bit.



Compiling instructions:
Linux users may use the provided Makefile to compile the program. You must have the dev package of GLFW and GLEW installed to compile.
If you don't use the Makefile (like on Windows) you should link at least glew32, glfw, opengl32 and fmodex.



You may use all the source codes for anything you want.